/**
 * @author: 團長
 * @date: 2014-4-8-下午2:12:24
 */
package net.loyintean.pearlshell.base.model;

/** Interface for Log information with stub.
 * <p>
 * 2014-12-21 jun.lin add two methods {@link #start(String)} and {@link #end()}.
 * v3.0.0
 * 
 * @author 團長
 * @since 2014-12-21
 * @version 3.0.0 */
public interface ILogInfo {

	/** record the start log in format of "'stub infomation' start!'"
	 * 
	 * @author 團長
	 * @since 2014-1-3
	 * @return */
	public String start();

	/** 带参数的start方法
	 * <p>
	 * 记录日志格式：'stub infomation' start! - log'
	 * 
	 * @param log
	 *            日志信息
	 * @return 格式化的日志 */
	public String start(String log);

	/** record the end log in format of "'stub infomation' end!"
	 * <p>
	 * 这个方法适用于返回值为void的方法日志
	 * 
	 * @return */
	public String end();

	/** record the end log in format of "'stub infomation' end! - 'log'"
	 * 
	 * @author 團長
	 * @since 2014-1-3
	 * @param log
	 *            log message
	 * @return log string in format */
	public String end(String log);

	/** record the inner log in format of "'stub infomation' inner - 'log'"
	 * 
	 * @author 團長
	 * @since 2014-1-3
	 * @param log
	 *            log message
	 * @return log string in format */
	public String inner(String log);

	/** record the error log in format of "'stub infomation' error - 'log'"
	 * 
	 * @author 團長
	 * @since 2014-1-3
	 * @param log
	 *            log message
	 * @return log string in format */
	public String error(String log);

	/** record the error log in format of
	 * "'stub infomation' error - &e='e'&e.getMessage='e.getMessage()'"
	 * 
	 * @author 團長
	 * @since 2014-1-3
	 * @param e
	 *            exception to log
	 * @return log string in format */
	public String error(Throwable e);

}